草庐IT

python - Python中集合的迭代顺序

全部标签

python - 解析非标准 XML(CDATA 标记)

当我想使用BeautifulSoup库在Python中解析XML文档时,我遇到了一些问题。我要解析的XML文档:2011-10-1009:00:002011-10-1709:00:003500020000正如你在上面看到的,标签有点奇怪。在我看来,that(tag)不是标准的XML形式,对吧?我该如何解析这种糟糕的形式? 最佳答案 您不需要BeautifulStoneSoup或lxml。Python自带的电池可以很好地完成这项工作,而且您的XML似乎没有任何不合规之处。>>>content='''\............2011-

任何顺序的 XML 元素,有些是必需的,有些不是

我正在尝试获得一个允许以任何顺序排列的元素列表。有些元素是必需的(最少1个,最多1个),有些是可选的,最多有一个,有些是可选的,可以有任意数量。这就是我所拥有的并且XSD是有效的,但是当我去验证XML时,我试图实现的规则并没有被强制执行。例如,id不是必需的。TheAtomfeedconstructisdefinedinsection4.1.1oftheformatspec. 最佳答案 我刚刚遇到了同样的问题并查看了他们在XHTMLXSD中做了什么.head中的情况相同:title是必需的,base是可选的,然后是任意数量的scri

python - 从 ElementTree 获取更好的解析错误信息

如果我尝试解析损坏的XML,异常会显示行号。有没有办法显示XML上下文?我想查看损坏部分前后的xml标记。例子:importxml.etree.ElementTreeasETtree=ET.fromstring('')异常(exception):Traceback(mostrecentcalllast):File"tmp/foo.py",line2,intree=ET.fromstring('')File"/usr/lib/python2.7/xml/etree/ElementTree.py",line1300,inXMLparser.feed(text)File"/usr/lib/p

python - 使用 xml.etree.ElementTree 获取子节点的所有实例

我有以下XML文件作为输入:0115555555777770112222222100我想输出dialledDigits的所有值。但是,我的代码只显示dialledDigits的第一个实例。dialledDigits{}5555555我想要的输出应该包含这两个实例。dialledDigits{}5555555dialledDigits{}2222222这是我的代码importxml.etree.ElementTreeasETtree=ET.parse('as.xml')root=tree.getroot()callevent=root.find('callEvents')Moc1=cal

.net - XDocument 和 BOM(字节顺序标记)问题

有什么方法可以输出没有BOM的XDocument的内容吗?使用Flash读取输出时,会导致错误。 最佳答案 如果您使用XmlWriter编写XML,则可以将编码设置为已初始化的编码以省略BOM。EG:System.Text.UTF8Encoding的构造函数采用一个bool值来指定您是否需要BOM,因此:XmlWriterwriter=XmlWriter.Create("foo.xml");writer.Settings.Encoding=newSystem.Text.UTF8Encoding(false);myXDocument.

python - 'NoneType' 类型的参数不可迭代

我正在尝试打开一个目录,该目录包含一个特定目录中的一系列XML。在下面的代码中,我遍历了每个XML文档,并设置了一些“if语句”来读取XML中的文本,查找关键字并替换它们,然后将新文件写入新位置。运行脚本时出现以下错误:Tracebackinfo:File"Z:\ESRI\Python\TestScripts\ElementTree6.py",line62,inif"%begdate%"inelement.text:...错误信息:argumentoftype'NoneType'isnotiterable我已将目录硬编码为一个特定的XML,当我运行if语句时,它们工作正常。当我尝试设置

用于编辑保留格式和注释的 XML 的 Python 库

我需要对现有的XML文件进行一些更改,同时保留格式和注释-除了我所做的微小更改之外的所有内容都应该保持不变。我试过xml.etree和lxml.etree但没有成功。XML是由我的IDE生成的,但它的编辑器缺乏功能,因此我必须进行一些手动更改。我想保留格式,这样差异就很漂亮,不会污染我的历史记录。有了众多的pythonXML库,我想我会在这里问问是否有人做过类似的事情。 最佳答案 考虑XSLT,专门用于转换XML文件的语言。具体来说,通过其身份转换,您可以按原样保留XML,并以最小的更改调整或删除文本节点。Python的lxml可以

python - 使用 lxml 生成 XHTML 文档的推荐方法

Python库lxml似乎提供了几个用于生成HTML文档的构建器。它们之间有什么区别?但是这些生成纯HTML,而不是XHTML。虽然我可以手动添加xmlns声明,但这并不优雅。那么使用lxml生成XHTML文档的推荐方法是什么?lxml.builder.E示例来自http://lxml.de/tutorial.html#the-e-factory:>>>fromlxml.builderimportE>>>defCLASS(*args):#classisareservedwordinPython...return{"class":''.join(args)}>>>html=page=(.

python - 为什么python XML解析速度不一致?

我正在解析一个大的(12GB)XML文件,该文件由大约135k或多或少的相似记录组成(这是一个nmap转储)。我注意到解析速度不一致,解析相似记录的时间变化很大。以下按比例缩小的代码输出解析每1%的记录所需的时间:fromxml.etree.ElementTreeimportiterparseimporttimenrhosts=0previous=time.time()context=iterparse("test.xml",events=("start","end"))context=iter(context)event,root=context.next()forevent,ele

c# - 使用 C# 在生成器设计模式中集成序列化和反序列化

我正在实现BuilderPattern为了生成一组对象。然后必须将这些对象序列化为XML并从XML反序列化。我知道如何执行序列化和反序列化,但我不确定如何将其集成到设计模式中。例如,假设我的代码使用构建器来创建产品foo和bar。我的第一个想法是在每个产品上放置一个序列化函数,因为每个产品都知道要序列化什么。我的下一个想法是将反序列化放在Director或ConcreteBuilder中。我不喜欢的是序列化和反序列化函数将位于不同的位置-一个在文件中用于声明foo和bar对象,另一个在文件中用于其他内容。我担心在我处理产品类时它们最终可能会变得不同步。我最后的想法是让Director或